import json
import re
from string import Template
from typing import Optional, Union, List
from uuid import uuid4

import pandas as pd
from openai import OpenAI

from server.module_chat.chat.core.agent.tool.api.chat_result import ChatResult
from server.module_chat.chat.core.agent.tool.function.functions_registry import register_function
from server.module_chat.chat.entity.vo.history import History
from server.settings import Settings
from server.utils.log_util import logger


@register_function(name="define_standard", description="定义标准")
def define_standard(query: str,
                    conversation_id: str = "",
                    history_len: int = -1,
                    history: Union[int, List[History]] = [],
                    stream: bool = False,
                    temperature: float = 0.8,
                    max_tokens: Optional[int] = 4096,
                    *args,
                    **kwargs
                    ):
    if not conversation_id:
        conversation_id = str(uuid4())
    model = Settings.model_settings.DEFAULT_LLM_MODEL
    api_key = Settings.model_settings.DEFAULT_API_KEY
    base_url = Settings.model_settings.DEFAULT_API_BASE_URL

    client = OpenAI(api_key=api_key, base_url=base_url)
    # 定义系统指令和聊天历史
    system_content = Template("""
    你是一个数据分类专家，现在有数据分类的一级、二级、三级分类、四级分类，数据级别分为第一级、第二级、第三极、第四级、重要数据、核心数据，请根据给出的数据四级分类，将数据四级分类匹配上正确的数据级别，并归类到正确一级、二级、三级类别，最后关联起来输出。
    ##########
    一级、二级、三级、四级的json分类关系如下：
    {"dataCategory1":[{"categoryName":"用户身份和鉴权信息（A类）","dataCategory2":[{"categoryName":"A1:用户身份和标识信息","dataCategory3":[{"categoryName":"A1-1 自然人身份标识","dataCategory4":[{"categoryName":"客户姓名","levelName":"第3级"},{"categoryName":"证件类型及号码","levelName":"第3级"},{"categoryName":"驾驶证号码","levelName":"第3级"},{"categoryName":"银行账户","levelName":"第3级"}]},{"categoryName":"A1-2 网络身份标识","dataCategory4":[{"categoryName":"联系电话","levelName":"第2级"},{"categoryName":"邮箱地址","levelName":"第2级"},{"categoryName":"网络客户编号","levelName":"第2级"},{"categoryName":"即时通信账号（如飞信号）","levelName":"第2级"},{"categoryName":"网络社交用户账号","levelName":"第2级"}]},{"categoryName":"A1-3 用户基本信息","dataCategory4":[{"categoryName":"客户职业","levelName":"第2级"},{"categoryName":"工作单位","levelName":"第2级"},{"categoryName":"年龄","levelName":"第2级"},{"categoryName":"性别","levelName":"第2级"},{"categoryName":"籍贯","levelName":"第2级"},{"categoryName":"兴趣爱好","levelName":"第2级"}]},{"categoryName":"A1-4 实体身份证明","dataCategory4":[{"categoryName":"身份证","levelName":"第4级"},{"categoryName":"护照","levelName":"第4级"},{"categoryName":"驾照","levelName":"第4级"},{"categoryName":"营业执照","levelName":"第4级"},{"categoryName":"个人基因","levelName":"第4级"},{"categoryName":"指纹","levelName":"第4级"},{"categoryName":"声纹","levelName":"第4级"},{"categoryName":"掌纹","levelName":"第4级"},{"categoryName":"耳廓","levelName":"第4级"},{"categoryName":"虹膜","levelName":"第4级"},{"categoryName":"面部识别特征","levelName":"第4级"}]},{"categoryName":"A1-5 用户私密信息","dataCategory4":[{"categoryName":"个人种族","levelName":"第4级"},{"categoryName":"家属信息","levelName":"第4级"},{"categoryName":"居住地址","levelName":"第4级"},{"categoryName":"宗教信仰","levelName":"第4级"},{"categoryName":"基因","levelName":"第4级"},{"categoryName":"个人健康","levelName":"第4级"},{"categoryName":"私人生活","levelName":"第4级"},{"categoryName":"法律、行政法规规定禁止公开的用户其他信息","levelName":"第4级"}]},{"categoryName":"A1-6 集团客户信息","dataCategory4":[{"categoryName":"可以精确标识定位具体实体客户的信息","levelName":"第2级"},{"categoryName":"集团客户所在省市、所在行业、集团签约时间及协议到期时间等","levelName":"第2级"}]}]},{"categoryName":"A2 用户网络身份鉴权信息","dataCategory3":[{"categoryName":"A2-1 用户密码及关联信息","dataCategory4":[{"categoryName":"用户网络身份密码及关联信息","levelName":"第4级"}]}]}]},{"categoryName":"用户数据及服务内容信息（B类）","dataCategory2":[{"categoryName":"B1 服务内容和资料数据","dataCategory3":[{"categoryName":"B1-1 服务内容数据","dataCategory4":[{"categoryName":"电信网服务内容数据","levelName":"第3级"},{"categoryName":"移动互联网服务内容信息","levelName":"第3级"},{"categoryName":"用户非公开的私有文字、多媒体等资料数据信息","levelName":"第3级"}]},{"categoryName":"B1-2 联系人信息","dataCategory4":[{"categoryName":"通讯录","levelName":"第4级"},{"categoryName":"好友列表","levelName":"第4级"},{"categoryName":"家庭网","levelName":"第4级"},{"categoryName":"V网列表","levelName":"第4级"},{"categoryName":"群组列表","levelName":"第4级"}]}]}]},{"categoryName":"用户服务相关信息（C类）","dataCategory2":[{"categoryName":"C1 用户服务使用数据","dataCategory3":[{"categoryName":"C1-1 业务订购关系","dataCategory4":[{"categoryName":"基本业务订购关系","levelName":"第2级"},{"categoryName":"增值业务订购关系","levelName":"第2级"}]},{"categoryName":"C1-2 服务记录和日志","dataCategory4":[{"categoryName":"服务详单及信令","levelName":"第3级"},{"categoryName":"移动互联网服务记录","levelName":"第3级"}]},{"categoryName":"C1-3 消费信息和账单","dataCategory4":[{"categoryName":"消费信息","levelName":"第2级"},{"categoryName":"消费账单","levelName":"第2级"}]},{"categoryName":"C1-4 位置数据","dataCategory4":[{"categoryName":"精确位置信息","levelName":"第3级"},{"categoryName":"大致位置信息","levelName":"第3级"}]},{"categoryName":"C1-5 违规记录数据","dataCategory4":[{"categoryName":"用户违规记录","levelName":"第1级"}]}]},{"categoryName":"C2 设备信息","dataCategory3":[{"categoryName":"C2-1 终端设备标识","dataCategory4":[{"categoryName":"唯一设备识别码IMEI","levelName":"第2级"},{"categoryName":"设备MAC地址","levelName":"第2级"},{"categoryName":"SIM卡IMSI信息","levelName":"第2级"}]},{"categoryName":"C2-2 终端设备资料","dataCategory4":[{"categoryName":"终端型号","levelName":"第2级"},{"categoryName":"终端品牌","levelName":"第2级"},{"categoryName":"终端厂商","levelName":"第2级"},{"categoryName":"终端OS类型","levelName":"第2级"},{"categoryName":"终端预置\\安装软件应用","levelName":"第2级"},{"categoryName":"终端使用时长","levelName":"第2级"}]}]}]},{"categoryName":"用户统计分析数据（D类）","dataCategory2":[{"categoryName":"D1 用户统计分析数据","dataCategory3":[{"categoryName":"D1-1 用户使用习惯和行为分析数据","dataCategory4":[{"categoryName":"用户偏好、消费习惯等。","levelName":"第3级"},{"categoryName":"通话、短信频次、上网等数量与频次","levelName":"第3级"}]},{"categoryName":"D1-2 用户上网行为相关统计分析数据","dataCategory4":[{"categoryName":"用户网络行为","levelName":"第3级"},{"categoryName":"用户画像","levelName":"第3级"}]}]}]},{"categoryName":"网络与系统的建设与运行维护类数据（E类）","dataCategory2":[{"categoryName":"E1 网络规划建设类数据","dataCategory3":[{"categoryName":"E1-1 网络规划类数据","dataCategory4":[{"categoryName":"网络建设","levelName":"第2级"},{"categoryName":"网络规划研究","levelName":"第2级"},{"categoryName":"咨询","levelName":"第2级"}]},{"categoryName":"E1-2 投资计划类数据","dataCategory4":[{"categoryName":"网络拓扑结构","levelName":"第2级"},{"categoryName":"新增设备信息","levelName":"第2级"},{"categoryName":"核心技术","levelName":"第2级"},{"categoryName":"设备采购","levelName":"第2级"},{"categoryName":"位置","levelName":"第2级"},{"categoryName":"性能","levelName":"第2级"},{"categoryName":"供应商","levelName":"第2级"}]},{"categoryName":"E1-3 项目管理类数据","dataCategory4":[{"categoryName":"项目建设方案","levelName":"第2级"},{"categoryName":"可研文件","levelName":"第2级"},{"categoryName":"设计文件","levelName":"第2级"}]}]},{"categoryName":"E2 网络与系统资源类数据","dataCategory3":[{"categoryName":"E2-1 公共资源类数据","dataCategory4":[{"categoryName":"资源机架","levelName":"第2级"},{"categoryName":"DDM（数字诊断监视功能模块）","levelName":"第2级"},{"categoryName":"可研文件","levelName":"第2级"},{"categoryName":"设计文件","levelName":"第2级"},{"categoryName":"DDF（数字配线架）","levelName":"第2级"},{"categoryName":"ODM（光配线架连接模块)","levelName":"第2级"},{"categoryName":"ODF（光纤配线架）","levelName":"第2级"}]},{"categoryName":"E2-2 传输资源类数据","dataCategory4":[{"categoryName":"传输外线基本信息","levelName":"第2级"},{"categoryName":"传输内线基本信息","levelName":"第2级"}]},{"categoryName":"E2-3 承载网资源类数据","dataCategory4":[{"categoryName":"承载网设备及系统信息","levelName":"第2级"},{"categoryName":"IP 地址","levelName":"第2级"}]},{"categoryName":"E2-4 核心网资源类数据","dataCategory4":[{"categoryName":"核心网网元基本信息","levelName":"第2级"}]},{"categoryName":"E2-5 接入网资源类数据","dataCategory4":[{"categoryName":"接入网资源基础信息","levelName":"第2级"}]},{"categoryName":"E2-6 IT系统资源类数据","dataCategory4":[{"categoryName":"业务支撑等平台相关的基本信息","levelName":"第2级"}]},{"categoryName":"E2-7 云资源类数据","dataCategory4":[{"categoryName":"云资源基础信息","levelName":"第2级"}]}]},{"categoryName":"E3 网络与系统运维类数据","dataCategory3":[{"categoryName":"E3-1 信令","dataCategory4":[{"categoryName":"信令数据","levelName":"第3级"}]},{"categoryName":"E3-2 路由","dataCategory4":[{"categoryName":"网络与系统的路由信息","levelName":"第3级"}]},{"categoryName":"E3-3 网段、网址、VLAN 划分","dataCategory4":[{"categoryName":"网段、网址、 VLAN 分配与划分等信息","levelName":"第3级"}]},{"categoryName":"E3-4 设备监测、告警","dataCategory4":[{"categoryName":"设备监测、告警等信息","levelName":"第3级"}]},{"categoryName":"E3-5 信令监测","dataCategory4":[{"categoryName":"信令的监测信息等","levelName":"第3级"}]},{"categoryName":"E3-6 流量监测","dataCategory4":[{"categoryName":"流量的监测信息","levelName":"第3级"}]},{"categoryName":"E3-7 运维日志","dataCategory4":[{"categoryName":"各类操作日志数据","levelName":"第3级"},{"categoryName":"工单处理记录","levelName":"第3级"}]},{"categoryName":"E3-8 运维系统账号密码等","dataCategory4":[{"categoryName":"运维系统的账号列表、密码等信息","levelName":"第3级"}]},{"categoryName":"E3-9 系统运行状况统计分析","dataCategory4":[{"categoryName":"网络及系统的运行统计分析数据等","levelName":"第3级"}]}]},{"categoryName":"E4 网络安全管理类数据","dataCategory3":[{"categoryName":"E4-1 安全审计记录","dataCategory4":[{"categoryName":"网络安全管理相关的安全审计记录","levelName":"第3级"}]},{"categoryName":"E4-2 网络安全应急预案","dataCategory4":[{"categoryName":"网络安全应急预案","levelName":"第3级"}]},{"categoryName":"E4-3 违法有害信息监测","dataCategory4":[{"categoryName":"违法有害信息监测处置","levelName":"第3级"},{"categoryName":"舆情态势监测预警","levelName":"第3级"}]},{"categoryName":"E4-4 核心区域监控","dataCategory4":[{"categoryName":"核心区域视频监控记录数据等","levelName":"第3级"}]},{"categoryName":"E4-5 网络威胁数据","dataCategory4":[{"categoryName":"僵木蠕监控信息","levelName":"第3级"},{"categoryName":"移动恶意软件监控信息","levelName":"第3级"},{"categoryName":"IDC/ISP 告警信息","levelName":"第3级"},{"categoryName":"安全事件记录","levelName":"第3级"}]}]}]},{"categoryName":"业务运营类数据（F类）","dataCategory2":[{"categoryName":"F1 业务运营服务数据","dataCategory3":[{"categoryName":"F1-1 产品信息","dataCategory4":[{"categoryName":"产品ID","levelName":"第1级"},{"categoryName":"套餐设置","levelName":"第1级"},{"categoryName":"销售品ID","levelName":"第1级"}]},{"categoryName":"F1-2 渠道信息","dataCategory4":[{"categoryName":"渠道数据","levelName":"第2级"},{"categoryName":"CP/SP数据","levelName":"第2级"}]},{"categoryName":"F1-3 客户服务信息","dataCategory4":[{"categoryName":"满意度调研数据","levelName":"第2级"},{"categoryName":"分析报告","levelName":"第2级"},{"categoryName":"实体渠道第三方监测","levelName":"第2级"},{"categoryName":"营业厅服务质检信息","levelName":"第2级"}]},{"categoryName":"F1-4 营销信息","dataCategory4":[{"categoryName":"充值数据","levelName":"第2级"},{"categoryName":"精准营销和服务应用号码及标签","levelName":"第2级"},{"categoryName":"各类预缴、促销、捆绑和营销奖励用户号码","levelName":"第2级"},{"categoryName":"终端业务各类指标完成数据","levelName":"第2级"},{"categoryName":"终端经营日常生产数据","levelName":"第2级"}]}]},{"categoryName":"F2 公开业务运营服务数据","dataCategory3":[{"categoryName":"F2-1 公开业务运营服务数据","dataCategory4":[{"categoryName":"产品数字内容业务运营数据","levelName":"第1级"},{"categoryName":"资费信息、公开的业务运营数据等","levelName":"第1级"}]}]}]},{"categoryName":"企业管理数据（G类）","dataCategory2":[{"categoryName":"G1 发展战略与重大决策","dataCategory3":[{"categoryName":"G1-1 发展战略","dataCategory4":[{"categoryName":"战略计划","levelName":"第3级"},{"categoryName":"战略风险评估","levelName":"第3级"}]},{"categoryName":"G1-2 重大决策与重要会议","dataCategory4":[{"categoryName":"重大事项决策","levelName":"第3级"},{"categoryName":"重要干部任免","levelName":"第3级"},{"categoryName":"重大项目投资决策","levelName":"第3级"},{"categoryName":"大额资金使用相关信息","levelName":"第3级"}]}]},{"categoryName":"G2 业务发展类数据","dataCategory3":[{"categoryName":"G2-1 市场策略","dataCategory4":[{"categoryName":"市场发展策略","levelName":"第3级"},{"categoryName":"市场经营专项研究报告","levelName":"第3级"},{"categoryName":"市场发展指导意见","levelName":"第3级"}]},{"categoryName":"G2-2 营销管理","dataCategory4":[{"categoryName":"品牌及传播推广策略","levelName":"第3级"},{"categoryName":"业务发展策略","levelName":"第3级"},{"categoryName":"管理办法","levelName":"第3级"},{"categoryName":"高端客户名单","levelName":"第3级"},{"categoryName":"白名单","levelName":"第3级"}]},{"categoryName":"G2-3 资费管理","dataCategory4":[{"categoryName":"资费方案","levelName":"第3级"},{"categoryName":"资费管理","levelName":"第3级"}]},{"categoryName":"G2-4 产品发展策略","dataCategory4":[{"categoryName":"产品试点方案","levelName":"第3级"},{"categoryName":"试商用方案","levelName":"第3级"},{"categoryName":"业务融合方案","levelName":"第3级"}]}]},{"categoryName":"G3 技术研发类数据","dataCategory3":[{"categoryName":"G3-1 技术管理","dataCategory4":[{"categoryName":"技术体制类规范","levelName":"第3级"},{"categoryName":"企业标准","levelName":"第3级"},{"categoryName":"技术成果","levelName":"第3级"},{"categoryName":"创新成果","levelName":"第3级"}]},{"categoryName":"G3-2 技术研究报告","dataCategory4":[{"categoryName":"试验测试数据","levelName":"第3级"},{"categoryName":"试验分析报告","levelName":"第3级"}]},{"categoryName":"G3-3 专利相关信息","dataCategory4":[{"categoryName":"专利申请技术交底书","levelName":"第3级"},{"categoryName":"专利布局相关报告","levelName":"第3级"},{"categoryName":"专利风险分析报告","levelName":"第3级"},{"categoryName":"专利纠纷应对策略","levelName":"第3级"}]}]},{"categoryName":"G4 运行管理类数据","dataCategory3":[{"categoryName":"G4-1 运行管理类数据","dataCategory4":[{"categoryName":"运行管理相关的规程","levelName":"第2级"},{"categoryName":"运行管理相关的操作指南","levelName":"第2级"},{"categoryName":"运行管理相关的计划","levelName":"第2级"}]}]},{"categoryName":"G5 生产经营类数据","dataCategory3":[{"categoryName":"G5-1 财务预算","dataCategory4":[{"categoryName":"公司年度预算","levelName":"第3级"},{"categoryName":"各部门年度预算","levelName":"第3级"},{"categoryName":"季度滚动预算的相关数据及材料","levelName":"第3级"},{"categoryName":"关联交易额度","levelName":"第3级"},{"categoryName":"金融投资计划","levelName":"第3级"}]},{"categoryName":"G5-2 业绩披露","dataCategory4":[{"categoryName":"信息披露相关材料","levelName":"第3级"},{"categoryName":"业绩披露信息","levelName":"第3级"}]},{"categoryName":"G5-3 考核相关信息","dataCategory4":[{"categoryName":"经营业绩考核办法、考核结果等信息","levelName":"第3级"}]},{"categoryName":"G5-4 生产经营数据","dataCategory4":[{"categoryName":"统计快报","levelName":"第3级"},{"categoryName":"年报数据","levelName":"第3级"},{"categoryName":"财务报表","levelName":"第3级"},{"categoryName":"生产经营分析材料","levelName":"第3级"},{"categoryName":"市场经营数据及分析报告","levelName":"第3级"},{"categoryName":"IT系统生产经营报告","levelName":"第3级"}]}]},{"categoryName":"G6 综合管理类数据","dataCategory3":[{"categoryName":"G6-1 人力资源","dataCategory4":[{"categoryName":"人员管理数据","levelName":"第3级"},{"categoryName":"机构管理数据","levelName":"第3级"},{"categoryName":"劳动用工管理数据","levelName":"第3级"},{"categoryName":"薪酬管理数据","levelName":"第3级"}]},{"categoryName":"G6-2 财务信息","dataCategory4":[{"categoryName":"收入","levelName":"第1级"},{"categoryName":"利润","levelName":"第1级"},{"categoryName":"预算","levelName":"第1级"},{"categoryName":"决算数据","levelName":"第1级"}]},{"categoryName":"G6-3 监督管理信息","dataCategory4":[{"categoryName":"监督管理相关信息","levelName":"第3级"}]},{"categoryName":"G6-4 办公自动化","dataCategory4":[{"categoryName":"邮件","levelName":"第2级"},{"categoryName":"行政文件","levelName":"第2级"},{"categoryName":"签报","levelName":"第2级"}]},{"categoryName":"G6-5 采购","dataCategory4":[{"categoryName":"采购招标的技术规范相关信息","levelName":"第2级"},{"categoryName":"招标及采购该过程信息","levelName":"第2级"},{"categoryName":"投标","levelName":"第2级"},{"categoryName":"订单","levelName":"第2级"},{"categoryName":"采购物资数量","levelName":"第2级"},{"categoryName":"类型","levelName":"第2级"},{"categoryName":"合作方信息","levelName":"第2级"},{"categoryName":"合同台账","levelName":"第2级"},{"categoryName":"各类采购合同（协议）","levelName":"第2级"},{"categoryName":"供应商考核","levelName":"第2级"}]}]}]},{"categoryName":"其他数据（H类）","dataCategory2":[{"categoryName":"H1 合作方提供数据","dataCategory3":[{"categoryName":"H1-1合作方提供数据","dataCategory4":[{"categoryName":"音视频等互联网内容数据","levelName":"第2级"}]}]}]},{"categoryName":"重要数据分类表（Z类）","dataCategory2":[{"categoryName":"Z1 网络规划运维数据域","dataCategory3":[{"categoryName":"Z1-1 网络规划建设","dataCategory4":[{"categoryName":"Z1-1-1-1 规划方案","levelName":"重要数据"},{"categoryName":"Z1-1-1-2 建设方案","levelName":"重要数据"},{"categoryName":"Z1-1-1-3 测试报告","levelName":"重要数据"},{"categoryName":"Z1-1-1-4 验收报告","levelName":"重要数据"},{"categoryName":"Z1-1-1-5 网络拓扑结构图","levelName":"重要数据"},{"categoryName":"Z1-1-1-6 卫星转发器上行G/T比值及其覆盖图","levelName":"重要数据"},{"categoryName":"Z1-1-1-7 卫星测量数据","levelName":"重要数据"},{"categoryName":"Z1-1-2-1 遥感影像数据","levelName":"重要数据"},{"categoryName":"Z1-1-2-2 精度在100米以内的机房位置坐标数据","levelName":"重要数据"},{"categoryName":"Z1-1-2-3 带有精度在100米以内坐标的实景影像数据","levelName":"重要数据"},{"categoryName":"Z1-1-2-4 建设图纸","levelName":"重要数据"},{"categoryName":"Z1-1-2-5 电力供应情况数据","levelName":"重要数据"},{"categoryName":"Z1-1-3-1 网络关键设备、存储设备、网络安全专用产品、数据库等重要设备和基础软件的具体型号","levelName":"重要数据"},{"categoryName":"Z1-1-3-2 网络关键设备、存储设备、网络安全专用产品、数据库等重要设备和基础软件的版本号","levelName":"重要数据"},{"categoryName":"Z1-1-3-3 网络关键设备、存储设备、网络安全专用产品、数据库等重要设备和基础软件的数量","levelName":"重要数据"},{"categoryName":"Z1-1-3-4 网络关键设备、存储设备、网络安全专用产品、数据库等重要设备和基础软件的部署架构","levelName":"重要数据"},{"categoryName":"Z1-1-3-5 网络关键设备、存储设备、网络安全专用产品、数据库等重要设备和基础软件的配置策略","levelName":"重要数据"},{"categoryName":"Z1-1-4-1 供应方信息","levelName":"重要数据"},{"categoryName":"Z1-1-4-2 交易数量","levelName":"重要数据"},{"categoryName":"Z1-1-4-3 采购周期","levelName":"重要数据"},{"categoryName":"Z1-1-4-4 采购产品型号","levelName":"重要数据"},{"categoryName":"Z1-1-4-5 应用领域","levelName":"重要数据"}]},{"categoryName":"Z1-2 网络运行维护","dataCategory4":[{"categoryName":"Z1-2-1-1 信令监测数据","levelName":"重要数据"},{"categoryName":"Z1-2-1-2 网络及系统的运行状态监测分析数据","levelName":"重要数据"},{"categoryName":"Z1-2-1-3 流量监测分析数据","levelName":"重要数据"},{"categoryName":"Z1-2-2-1 分组域、电路域、IMS系统等元基本信息","levelName":"重要数据"},{"categoryName":"Z1-2-2-2 VLAN分配与划分","levelName":"重要数据"},{"categoryName":"Z1-2-2-3 路由列表","levelName":"重要数据"},{"categoryName":"Z1-2-2-4 IP地址分配信息","levelName":"重要数据"},{"categoryName":"Z1-2-2-5 内外网转换信息","levelName":"重要数据"},{"categoryName":"Z1-2-3-1 网络及系统运维方案","levelName":"重要数据"},{"categoryName":"Z1-2-3-2 可能引发重大网络与数据安全事件的故障情况及其运维日志","levelName":"重要数据"},{"categoryName":"Z1-2-3-3 带有登录口令或密钥信息的账号列表","levelName":"重要数据"},{"categoryName":"Z1-2-4-1 监测结果统计分析数据","levelName":"重要数据"},{"categoryName":"Z1-2-4-2 运行状态统计分析数据","levelName":"重要数据"},{"categoryName":"Z1-2-4-3 故障情况统计分析数据","levelName":"重要数据"}]}]},{"categoryName":"Z2 安全保障数据域","dataCategory3":[{"categoryName":"Z2-1 网络与数据安全保障","dataCategory4":[{"categoryName":"Z2-1-1-1 泄露后可能引发重大网络与数据安全事件的监测预警信息","levelName":"重要数据"},{"categoryName":"Z2-1-1-2 泄露后可能引发重大网络与数据安全事件的安全审计记录","levelName":"重要数据"},{"categoryName":"Z2-1-1-3 泄露后可能引发重大网络与数据安全事件的安全应急预案","levelName":"重要数据"},{"categoryName":"Z2-1-1-4 网络与数据安全技术产品设计方案","levelName":"重要数据"},{"categoryName":"Z2-1-1-5 网络与数据安全技术产品系统架构","levelName":"重要数据"},{"categoryName":"Z2-1-1-6 可能影响系统安全防护能力的配置策略","levelName":"重要数据"},{"categoryName":"Z2-1-2-1 网络与数据安全事件所泄露、损毁、丢失的数据类型、范围、数量，事件的原因","levelName":"重要数据"},{"categoryName":"Z2-1-2-2 网络与数据安全事件所泄露、损毁、丢失的影响程度、攻击方、处置措施、应急预案、保障预案、行动方案等","levelName":"重要数据"},{"categoryName":"Z2-1-3-1 漏洞类型和详细描述","levelName":"重要数据"},{"categoryName":"Z2-1-3-2 影响系统范围和数据情况","levelName":"重要数据"},{"categoryName":"Z2-1-3-3 渗透测试数据","levelName":"重要数据"}]},{"categoryName":"Z2-2 物理安全保障","dataCategory4":[{"categoryName":"Z2-2-1-1 反映重点安保单位、国家重要资产等重要场所情况的数据","levelName":"重要数据"},{"categoryName":"Z2-2-1-2 反映安保装备设计原理、使用方法、破解方法等情况的数据","levelName":"重要数据"},{"categoryName":"Z2-2-1-3 反映安保人员、设备部署情况的数据","levelName":"重要数据"},{"categoryName":"Z2-2-2-1 通信建设工程安全隐患排查报告","levelName":"重要数据"},{"categoryName":"Z2-2-2-2 重点施工和作业现场安全事故处置报告","levelName":"重要数据"}]},{"categoryName":"Z2-3 应急通信保障","dataCategory4":[{"categoryName":"Z2-3-1-1 应急通信专用网络规划方案","levelName":"重要数据"},{"categoryName":"Z2-3-1-2 应急通信专用网络建设方案","levelName":"重要数据"},{"categoryName":"Z2-3-1-3 应急通信专用网络拓扑结构","levelName":"重要数据"},{"categoryName":"Z2-3-1-4 精度在100米以内的重要网络设施和信息系统位置坐标数据","levelName":"重要数据"},{"categoryName":"Z2-3-2-1 急通信保障人员的规模、位置等","levelName":"重要数据"},{"categoryName":"Z2-3-2-2 应急通信装备储备数量、型号、位置以及核心性能参数等","levelName":"重要数据"},{"categoryName":"Z2-3-3-1 应急通信系统的规划、建设方案","levelName":"重要数据"},{"categoryName":"Z2-3-3-2 应急通信系统的关键配置","levelName":"重要数据"},{"categoryName":"Z2-3-3-3 应急通信系统的性能参数","levelName":"重要数据"},{"categoryName":"Z2-3-3-4 应急通信系统的安全漏洞","levelName":"重要数据"},{"categoryName":"Z2-3-3-5 应急通信系统的运维日志","levelName":"重要数据"},{"categoryName":"Z2-3-4-1 应急通信保障预案","levelName":"重要数据"},{"categoryName":"Z2-3-4-2 应急通信保障行动方案","levelName":"重要数据"},{"categoryName":"Z2-3-4-3 应急通信保障装备及人员部署情况","levelName":"重要数据"},{"categoryName":"Z2-3-4-4 应急通信网络设施损毁及修复情况","levelName":"重要数据"},{"categoryName":"Z2-3-4-5 应急通信服务中断及恢复情况。","levelName":"重要数据"}]}]},{"categoryName":"Z3 经济运行与业务发展数据域","dataCategory3":[{"categoryName":"Z3-1 行业发展","dataCategory4":[{"categoryName":"Z3-1-1-1 行业或业务发展预测信息","levelName":"重要数据"},{"categoryName":"Z3-1-1-2 市场规模和分布情况","levelName":"重要数据"}]},{"categoryName":"Z3-2 行业发展战略规划与重大决策","dataCategory4":[{"categoryName":"Z3-2-1-1 业务发展战略规划","levelName":"重要数据"},{"categoryName":"Z3-2-1-2 改制方案","levelName":"重要数据"},{"categoryName":"Z3-2-1-3 上市计划","levelName":"重要数据"},{"categoryName":"Z3-2-1-4 单项投资额超过10亿元或企业净资产30%的投资方案等。","levelName":"重要数据"}]}]},{"categoryName":"Z4 经济运行与业务发展数据域","dataCategory3":[{"categoryName":"Z4-1 出口管制物项","dataCategory4":[{"categoryName":"Z4-1-1-1 出口管制物项关键技术（包括源代码、技术方案、关键技术指标参数等）","levelName":"重要数据"},{"categoryName":"Z4-1-1-2 出口管制物项报告（包括详细测试数据、检测报告等）","levelName":"重要数据"}]},{"categoryName":"Z4-2 重大科技成果","dataCategory4":[{"categoryName":"Z4-2-1-1 在科学研究、技术开发、产业实践过程中产生的未公开的专利","levelName":"重要数据"},{"categoryName":"Z4-2-1-2 在科学研究、技术开发、产业实践过程中产生的未公开的论文","levelName":"重要数据"},{"categoryName":"Z4-2-1-3 在科学研究、技术开发、产业实践过程中产生的未公开的实验数据或报告","levelName":"重要数据"}]},{"categoryName":"Z4-3 国家科技计划","dataCategory4":[{"categoryName":"Z4-3-1-1 国家科技计划可行性研究报告","levelName":"重要数据"},{"categoryName":"Z4-3-1-2 国家科技计划建设方案","levelName":"重要数据"},{"categoryName":"Z4-3-1-3 国家科技计划科学数据","levelName":"重要数据"},{"categoryName":"Z4-3-1-4 国家科技计划尚未公开的科学报告","levelName":"重要数据"}]}]},{"categoryName":"Z5 其他","dataCategory3":[{"categoryName":"Z5-1 一定规模个人信息","dataCategory4":[{"categoryName":"Z5-1-1-1 100万人以上的个人信息（同时具有身份证+姓名或者手机号码+姓名的信息）","levelName":"重要数据"},{"categoryName":"Z5-1-1-2 10万人以上具有一定特征群体（军人、公务员等）的个人信息（同时具有身份证+姓名或者手机号码+姓名的带有特定群体的信息）","levelName":"重要数据"}]},{"categoryName":"Z5-2 其他","dataCategory4":[{"categoryName":"Z5-2-1-1 电信主管部门确定的其他一旦遭到篡改、破坏、泄露或者非法获取、非法利用，可能危害国家安全、公共利益的电信数据。","levelName":"重要数据"}]}]}]},{"categoryName":"重要数据分类表（Z类）","dataCategory2":[{"categoryName":"Z1 网络规划运维数据域","dataCategory3":[{"categoryName":"Z1-1 网络规划建设","dataCategory4":[{"categoryName":"Z1-1-1-1 规划方案","levelName":"重要数据"},{"categoryName":"Z1-1-1-2 建设方案","levelName":"重要数据"},{"categoryName":"Z1-1-1-3 测试报告","levelName":"重要数据"},{"categoryName":"Z1-1-1-4 验收报告","levelName":"重要数据"},{"categoryName":"Z1-1-1-5 网络拓扑结构图","levelName":"重要数据"},{"categoryName":"Z1-1-1-6 卫星转发器上行G/T比值及其覆盖图","levelName":"重要数据"},{"categoryName":"Z1-1-1-7 卫星测量数据","levelName":"重要数据"},{"categoryName":"Z1-1-2-1 遥感影像数据","levelName":"重要数据"},{"categoryName":"Z1-1-2-2 精度在100米以内的机房位置坐标数据","levelName":"重要数据"},{"categoryName":"Z1-1-2-3 带有精度在100米以内坐标的实景影像数据","levelName":"重要数据"},{"categoryName":"Z1-1-2-4 建设图纸","levelName":"重要数据"},{"categoryName":"Z1-1-2-5 电力供应情况数据","levelName":"重要数据"},{"categoryName":"Z1-1-3-1 网络关键设备、存储设备、网络安全专用产品、数据库等重要设备和基础软件的具体型号","levelName":"重要数据"},{"categoryName":"Z1-1-3-2 网络关键设备、存储设备、网络安全专用产品、数据库等重要设备和基础软件的版本号","levelName":"重要数据"},{"categoryName":"Z1-1-3-3 网络关键设备、存储设备、网络安全专用产品、数据库等重要设备和基础软件的数量","levelName":"重要数据"},{"categoryName":"Z1-1-3-4 网络关键设备、存储设备、网络安全专用产品、数据库等重要设备和基础软件的部署架构","levelName":"重要数据"},{"categoryName":"Z1-1-3-5 网络关键设备、存储设备、网络安全专用产品、数据库等重要设备和基础软件的配置策略","levelName":"重要数据"},{"categoryName":"Z1-1-4-1 供应方信息","levelName":"重要数据"},{"categoryName":"Z1-1-4-2 交易数量","levelName":"重要数据"},{"categoryName":"Z1-1-4-3 采购周期","levelName":"重要数据"},{"categoryName":"Z1-1-4-4 采购产品型号","levelName":"重要数据"},{"categoryName":"Z1-1-4-5 应用领域","levelName":"重要数据"}]},{"categoryName":"Z1-2 网络运行维护","dataCategory4":[{"categoryName":"Z1-2-1-1 信令监测数据","levelName":"重要数据"},{"categoryName":"Z1-2-1-2 网络及系统的运行状态监测分析数据","levelName":"重要数据"},{"categoryName":"Z1-2-1-3 流量监测分析数据","levelName":"重要数据"},{"categoryName":"Z1-2-2-1 分组域、电路域、IMS系统等元基本信息","levelName":"重要数据"},{"categoryName":"Z1-2-2-2 VLAN分配与划分","levelName":"重要数据"},{"categoryName":"Z1-2-2-3 路由列表","levelName":"重要数据"},{"categoryName":"Z1-2-2-4 IP地址分配信息","levelName":"重要数据"},{"categoryName":"Z1-2-2-5 内外网转换信息","levelName":"重要数据"},{"categoryName":"Z1-2-3-1 网络及系统运维方案","levelName":"重要数据"},{"categoryName":"Z1-2-3-2 可能引发重大网络与数据安全事件的故障情况及其运维日志","levelName":"重要数据"},{"categoryName":"Z1-2-3-3 带有登录口令或密钥信息的账号列表","levelName":"重要数据"},{"categoryName":"Z1-2-4-1 监测结果统计分析数据","levelName":"重要数据"},{"categoryName":"Z1-2-4-2 运行状态统计分析数据","levelName":"重要数据"},{"categoryName":"Z1-2-4-3 故障情况统计分析数据","levelName":"重要数据"}]}]},{"categoryName":"Z2 安全保障数据域","dataCategory3":[{"categoryName":"Z2-1 网络与数据安全保障","dataCategory4":[{"categoryName":"Z2-1-1-1 泄露后可能引发重大网络与数据安全事件的监测预警信息","levelName":"重要数据"},{"categoryName":"Z2-1-1-2 泄露后可能引发重大网络与数据安全事件的安全审计记录","levelName":"重要数据"},{"categoryName":"Z2-1-1-3 泄露后可能引发重大网络与数据安全事件的安全应急预案","levelName":"重要数据"},{"categoryName":"Z2-1-1-4 网络与数据安全技术产品设计方案","levelName":"重要数据"},{"categoryName":"Z2-1-1-5 网络与数据安全技术产品系统架构","levelName":"重要数据"},{"categoryName":"Z2-1-1-6 可能影响系统安全防护能力的配置策略","levelName":"重要数据"},{"categoryName":"Z2-1-2-1 网络与数据安全事件所泄露、损毁、丢失的数据类型、范围、数量，事件的原因","levelName":"重要数据"},{"categoryName":"Z2-1-2-2 网络与数据安全事件所泄露、损毁、丢失的影响程度、攻击方、处置措施、应急预案、保障预案、行动方案等","levelName":"重要数据"},{"categoryName":"Z2-1-3-1 漏洞类型和详细描述","levelName":"重要数据"},{"categoryName":"Z2-1-3-2 影响系统范围和数据情况","levelName":"重要数据"},{"categoryName":"Z2-1-3-3 渗透测试数据","levelName":"重要数据"}]},{"categoryName":"Z2-2 物理安全保障","dataCategory4":[{"categoryName":"Z2-2-1-1 反映重点安保单位、国家重要资产等重要场所情况的数据","levelName":"重要数据"},{"categoryName":"Z2-2-1-2 反映安保装备设计原理、使用方法、破解方法等情况的数据","levelName":"重要数据"},{"categoryName":"Z2-2-1-3 反映安保人员、设备部署情况的数据","levelName":"重要数据"},{"categoryName":"Z2-2-2-1 通信建设工程安全隐患排查报告","levelName":"重要数据"},{"categoryName":"Z2-2-2-2 重点施工和作业现场安全事故处置报告","levelName":"重要数据"}]},{"categoryName":"Z2-3 应急通信保障","dataCategory4":[{"categoryName":"Z2-3-1-1 应急通信专用网络规划方案","levelName":"重要数据"},{"categoryName":"Z2-3-1-2 应急通信专用网络建设方案","levelName":"重要数据"},{"categoryName":"Z2-3-1-3 应急通信专用网络拓扑结构","levelName":"重要数据"},{"categoryName":"Z2-3-1-4 精度在100米以内的重要网络设施和信息系统位置坐标数据","levelName":"重要数据"},{"categoryName":"Z2-3-2-1 急通信保障人员的规模、位置等","levelName":"重要数据"},{"categoryName":"Z2-3-2-2 应急通信装备储备数量、型号、位置以及核心性能参数等","levelName":"重要数据"},{"categoryName":"Z2-3-3-1 应急通信系统的规划、建设方案","levelName":"重要数据"},{"categoryName":"Z2-3-3-2 应急通信系统的关键配置","levelName":"重要数据"},{"categoryName":"Z2-3-3-3 应急通信系统的性能参数","levelName":"重要数据"},{"categoryName":"Z2-3-3-4 应急通信系统的安全漏洞","levelName":"重要数据"},{"categoryName":"Z2-3-3-5 应急通信系统的运维日志","levelName":"重要数据"},{"categoryName":"Z2-3-4-1 应急通信保障预案","levelName":"重要数据"},{"categoryName":"Z2-3-4-2 应急通信保障行动方案","levelName":"重要数据"},{"categoryName":"Z2-3-4-3 应急通信保障装备及人员部署情况","levelName":"重要数据"},{"categoryName":"Z2-3-4-4 应急通信网络设施损毁及修复情况","levelName":"重要数据"},{"categoryName":"Z2-3-4-5 应急通信服务中断及恢复情况。","levelName":"重要数据"}]}]},{"categoryName":"Z3 经济运行与业务发展数据域","dataCategory3":[{"categoryName":"Z3-1 行业发展","dataCategory4":[{"categoryName":"Z3-1-1-1 行业或业务发展预测信息","levelName":"重要数据"},{"categoryName":"Z3-1-1-2 市场规模和分布情况","levelName":"重要数据"}]},{"categoryName":"Z3-2 行业发展战略规划与重大决策","dataCategory4":[{"categoryName":"Z3-2-1-1 业务发展战略规划","levelName":"重要数据"},{"categoryName":"Z3-2-1-2 改制方案","levelName":"重要数据"},{"categoryName":"Z3-2-1-3 上市计划","levelName":"重要数据"},{"categoryName":"Z3-2-1-4 单项投资额超过10亿元或企业净资产30%的投资方案等。","levelName":"重要数据"}]}]},{"categoryName":"Z4 经济运行与业务发展数据域","dataCategory3":[{"categoryName":"Z4-1 出口管制物项","dataCategory4":[{"categoryName":"Z4-1-1-1 出口管制物项关键技术（包括源代码、技术方案、关键技术指标参数等）","levelName":"重要数据"},{"categoryName":"Z4-1-1-2 出口管制物项报告（包括详细测试数据、检测报告等）","levelName":"重要数据"}]},{"categoryName":"Z4-2 重大科技成果","dataCategory4":[{"categoryName":"Z4-2-1-1 在科学研究、技术开发、产业实践过程中产生的未公开的专利","levelName":"重要数据"},{"categoryName":"Z4-2-1-2 在科学研究、技术开发、产业实践过程中产生的未公开的论文","levelName":"重要数据"},{"categoryName":"Z4-2-1-3 在科学研究、技术开发、产业实践过程中产生的未公开的实验数据或报告","levelName":"重要数据"}]},{"categoryName":"Z4-3 国家科技计划","dataCategory4":[{"categoryName":"Z4-3-1-1 国家科技计划可行性研究报告","levelName":"重要数据"},{"categoryName":"Z4-3-1-2 国家科技计划建设方案","levelName":"重要数据"},{"categoryName":"Z4-3-1-3 国家科技计划科学数据","levelName":"重要数据"},{"categoryName":"Z4-3-1-4 国家科技计划尚未公开的科学报告","levelName":"重要数据"}]}]},{"categoryName":"Z5 其他","dataCategory3":[{"categoryName":"Z5-1 一定规模个人信息","dataCategory4":[{"categoryName":"Z5-1-1-1 100万人以上的个人信息（同时具有身份证+姓名或者手机号码+姓名的信息）","levelName":"重要数据"},{"categoryName":"Z5-1-1-2 10万人以上具有一定特征群体（军人、公务员等）的个人信息（同时具有身份证+姓名或者手机号码+姓名的带有特定群体的信息）","levelName":"重要数据"}]},{"categoryName":"Z5-2 其他","dataCategory4":[{"categoryName":"Z5-2-1-1 电信主管部门确定的其他一旦遭到篡改、破坏、泄露或者非法获取、非法利用，可能危害国家安全、公共利益的电信数据。","levelName":"重要数据"}]}]}]},{"categoryName":"核心数据分类表（H类）","dataCategory2":[{"categoryName":"H1 网络规划运维数据域","dataCategory3":[{"categoryName":"H1-1 网络规划建设","dataCategory4":[{"categoryName":"H1-1-1-1 规划方案","levelName":"核心数据"},{"categoryName":"H1-1-1-2 建设方案","levelName":"核心数据"},{"categoryName":"H1-1-1-3 网络拓扑结构","levelName":"核心数据"},{"categoryName":"H1-1-2-1 机房遥感影像数据","levelName":"核心数据"},{"categoryName":"H1-1-2-2 精度在100米以内的机房位置坐标数据","levelName":"核心数据"},{"categoryName":"H1-1-2-3 带有精度在100米以内坐标的实景影像数据","levelName":"核心数据"},{"categoryName":"H1-1-2-4 建设图纸","levelName":"核心数据"}]},{"categoryName":"H1-2 网络运行维护","dataCategory4":[{"categoryName":"H1-2-1-1 可能引发特别重大网络与数据安全事件的系统故障情况及其运维日志","levelName":"核心数据"},{"categoryName":"H1-2-1-2 带有登录口令或密钥信息的运维系统的账号列表","levelName":"核心数据"},{"categoryName":"H1-2-2-1 监测结果统计分析数据","levelName":"核心数据"},{"categoryName":"H1-2-2-2 运行状态统计分析数据","levelName":"核心数据"},{"categoryName":"H1-2-2-3 故障情况统计分析数据","levelName":"核心数据"}]}]},{"categoryName":"H2 安全保障数据域","dataCategory3":[{"categoryName":"H2-1 网络与数据安全保障","dataCategory4":[{"categoryName":"H2-1-1-1 泄露后可能引发重大网络与数据安全事件的监测预警信息","levelName":"核心数据"},{"categoryName":"H2-1-1-2 泄露后可能引发重大网络与数据安全事件的安全审计记录","levelName":"核心数据"},{"categoryName":"H2-1-1-3 泄露后可能引发重大网络与数据安全事件的安全应急预案","levelName":"核心数据"},{"categoryName":"H2-1-1-4 网络与数据安全技术产品设计方案","levelName":"核心数据"},{"categoryName":"H2-1-1-5 可能影响系统安全防护能力的配置策略","levelName":"核心数据"},{"categoryName":"H2-1-2-1 网络与数据安全事件所泄露、损毁、丢失的数据类型、范围、数量，事件的原因","levelName":"核心数据"},{"categoryName":"H2-1-2-2 网络与数据安全事件所泄露、损毁、丢失的影响程度、攻击方、处置措施、应急预案、保障预案、行动方案等","levelName":"核心数据"},{"categoryName":"H2-1-3-1 漏洞类型和详细描述","levelName":"核心数据"},{"categoryName":"H2-1-3-2 影响系统范围和数据情况","levelName":"核心数据"},{"categoryName":"H2-1-3-3 渗透测试数据","levelName":"核心数据"}]},{"categoryName":"H2-2 应急通信保障","dataCategory4":[{"categoryName":"H2-2-1-1 应急通信保障人员的规模、位置等，","levelName":"核心数据"},{"categoryName":"H2-2-1-2 应急通信装备储备数量、型号、位置以及核心性能参数等","levelName":"核心数据"},{"categoryName":"H2-2-2-1 应急通信系统的规划、建设方案","levelName":"核心数据"},{"categoryName":"H2-2-2-2 应急通信系统关键配置","levelName":"核心数据"},{"categoryName":"H2-2-2-3 应急通信系统安全漏洞。","levelName":"核心数据"},{"categoryName":"H2-2-3-1 应急通信保障预案","levelName":"核心数据"},{"categoryName":"H2-2-3-2 应急通信保障行动方案","levelName":"核心数据"},{"categoryName":"H2-2-3-3 应急通信保障装备及人员部署情况","levelName":"核心数据"},{"categoryName":"H2-2-3-4 应急通信网络设施损毁及修复情况","levelName":"核心数据"},{"categoryName":"H2-2-3-5 应急通信服务中断及恢复情况。","levelName":"核心数据"}]}]},{"categoryName":"H3 经济运行与业务发展数据域","dataCategory3":[{"categoryName":"H3-1 行业发展","dataCategory4":[{"categoryName":"H3-1-1-1 行业整体发展预测信息","levelName":"核心数据"}]}]},{"categoryName":"H4 关键技术成果数据域","dataCategory3":[{"categoryName":"H4-1 重大科技成果","dataCategory4":[{"categoryName":"H4-1-1-1 在科学研究、技术开发、产业实践过程中产生的未公开的专利","levelName":"核心数据"},{"categoryName":"H4-1-1-2 在科学研究、技术开发、产业实践过程中产生的未公开的论文","levelName":"核心数据"},{"categoryName":"H4-1-1-3 在科学研究、技术开发、产业实践过程中产生的未公开的报告","levelName":"核心数据"},{"categoryName":"H4-1-1-4 在科学研究、技术开发、产业实践过程中产生的未公开的实验数据","levelName":"核心数据"}]},{"categoryName":"H4-2 国家科技计划","dataCategory4":[{"categoryName":"H4-2-1-1 建设方案","levelName":"核心数据"},{"categoryName":"H4-2-1-2 科学数据","levelName":"核心数据"},{"categoryName":"H4-2-1-3 尚未公开的科学报告","levelName":"核心数据"}]}]}]}]}
    数据级别分别为（重要程度依次递增）：
    1、第一级
    2、第二级
    3、第三极
    4、第四级
    5、重要数据
    6、核心数据
    ########
    用户问题：现在数据四级类别分别为:
    $query
    Step 1：请将这些四级类别归类到合适的一级、二级、三级类别下。
    Step 2：为这些四级类别分别匹配正确的数据级别。
    Step 3：输出json数据
    ########
    输出格式为json，输出样例如下：
    {"dataCategory1":[{"categoryName":"一级类别","dataCategory2":[{"categoryName":"二级类别","dataCategory3":[{"categoryName":"三级类别","dataCategory4":[{"categoryName":"四级类别","levelName":"数据级别"}]}]}]}]}
    注意：
    1. 请严格按照输出格式进行输出，确保输出结果是个json字符串，可以被Python 的json.loads加载，不要输出其他分析内容。
    """).substitute(query=query)

    system_message = {
        "role": "system",
        "content": system_content
    }
    message = [system_message]
    response = client.chat.completions.create(
        model=model,
        messages=message,
        max_tokens=max_tokens,
        stop=None,
        temperature=temperature,
        stream=stream
    )
    content = ""
    if stream:
        for chunk in response:
            message_id = chunk.id
            if len(chunk.choices) > 0:
                delta = chunk.choices[0].delta
                if 'content' in delta.__fields__:
                    if delta.content:
                        content += delta.content
                        print(delta.content, end='', flush=True)
    else:
        message_id = response.id
        content = response.choices[0].message.content

    chat_result = ChatResult(**{"type": "table",
                                "conversation_id": conversation_id,
                                "message_id": message_id,
                                "text": ""})
    try:
        data = json.loads(format_json(content))
        print(json.dumps(data, ensure_ascii=False))
        # 构造数据并打印结果
        result = flatten_data(data)
        print(json.dumps(result, ensure_ascii=False))
        df = pd.DataFrame(result,
                          columns=["序号", "数据一级分类", "数据二级分类", "数据三级分类", "数据四级分类", "数据级别"])
        chat_result.text = df.to_json(orient='records', force_ascii=False)
        yield chat_result.model_dump_json(by_alias=True)
    except Exception as e:
        logger.error(f"生成无法解析的json: {content}", e)
        chat_result.text = "生成无法解析的json"
        yield chat_result.model_dump_json(by_alias=True)


def format_json(content: str):
    # 使用正则表达式匹配```json ... ```模式
    pattern = r"```json(.*?)```"
    matches = re.findall(pattern, content, re.DOTALL)

    if matches:
        # 假设只有一个匹配项
        content = matches[0].strip()
    content = content.replace("\n", "").replace("\\n", "").replace("\"\"\"", "\"")
    return content


def flatten_data(data, category_list=None):
    index = 1
    if category_list is None:
        category_list = []

    flattened_data = []

    # 遍历顶级的 dataCategory1
    for item in data.get("dataCategory1", []):
        current_category = item["categoryName"]

        # 将当前类别添加到列表中
        current_list = category_list + [current_category]

        # 检查是否有下一层 dataCategory2
        for sub_item in item.get("dataCategory2", []):
            sub_category = sub_item["categoryName"]

            # 将子类别添加到列表中
            next_list = current_list + [sub_category]

            # 检查是否有 dataCategory3
            for sub_sub_item in sub_item.get("dataCategory3", []):
                sub_sub_category = sub_sub_item["categoryName"]

                # 将孙类别添加到列表中
                next_next_list = next_list + [sub_sub_category]

                # 检查是否有 dataCategory4 和 levelName
                for sub_sub_sub_item in sub_sub_item.get("dataCategory4", []):
                    sub_sub_sub_category = sub_sub_sub_item["categoryName"]
                    level_name = sub_sub_sub_item["levelName"]

                    # 将曾孙类别和级别添加到列表中
                    final_list = [index] + next_next_list + [sub_sub_sub_category, level_name]
                    index = index + 1
                    flattened_data.append(final_list)

    return flattened_data
